Comme nous avons eu l’occasion de l’expliquer dans la première partie de notre dossier sur les CPU (note à moi-même : penser à le finir…), l’Intel 4004 est le premier microprocesseur à avoir été commercialisé.
Il intégrait pour rappel 2 300 transistors et la puce ne disposait que de 16 pins. Elle était capable d’exécuter 92 600 opérations par seconde avec une vitesse de fonctionnement de 740 kHz. De son côté, le noyau Linux est arrivé 20 ans plus tard, en 1991
Dmitry Grinberg a réussi à booter le noyau Linux de Debian dessus, en seulement 4,76 jours. Quelques précisions pour les sceptiques :
« Bien sûr, Linux ne peut pas et ne veut pas démarrer directement sur un 4004. Il n’y a pas de compilateur C ciblant le 4004, et il n’a pas été possible d’en créer un en raison des limitations de l’architecture. La quantité de ROM et de RAM adressable est également trop faible ».
Solution de contournement : l’émulation. « Mon objectif initial était de rester dans la limite 4 Ko de code, car c’est ce qu’un 4004 non modifié peut gérer. 4 Ko de code, ce n’est pas grand-chose pour émuler un système complet ». Après avoir analysé différentes options, il est partie sur le MIPS R3000.
Commentaires (4)
#1
Et faire émerger la conscience que les ressources d'aujourd'hui sont peut-être overkill et qu'on peut se contenter de moins?
En tout cas pour des usages de consultation/consommation courants.
#1.1
Pour revenir à cette démo:
6.3w pendant 4j pour juste booter c'est 0.7kWh; le pire rendement depuis que les calculateurs à ampoules ont étés arrêtés.
et on ne compte pas le PC a côté qui sert de terminal en port série.
Les heures de développement qu'il a fallu pour programmer ce noyau ça se compte en mois, une gabegie au regard de l'intérêt.
Enfin les ressources matérielles, ce n'est même pas du matériel au rebut qu'un nostalgique aurait voulu faire revivre, la carte a été construite sur mesure.
Donc moi ce que ça m'évoque plutôt, j'hésite entre de la folie ou de l'acharnement.
#1.2
Le problème c’est qu’on a des ordinateurs incroyablement puissants mais que les éditeurs de logiciels n’en ont plus rien à faire de la perf donc on se retrouve avec des softs ridiculement lourds qui ne font pas grand chose de plus qu’avant.
Bon après je modère quand même mon propos : j’ai jamais gardé mes machines aussi longtemps. Mon PC fixe sous Linux a 7 ou 8 ans et a part la carte graphique quasi tout est d’origine. Par contre le PC de mon ancien taf (de dev ) était une bête à 3000€ sous Windows et était insupportable à utiliser tant le moindre outil (Windows compris) croit que c’est open bar niveau ressources.
Mais en tant que dev, j’ai vu de mes yeux que la perf n’est ja-mais un sujet. Économiquement c’est logique : par rapport au salaire d’un dev qui va passer du temps à bien faire (et déjà ça implique plusieurs devs qui débattent pendant des heures de ce que ça veut dire ), l’infra coûte que dalle et la machine du client c’est encore pire, c’est gratuit.
Et c’est même pas que c’est volontaire ou cynique ou de la malveillance : non, c’est un peu comme le respect de la vie privée ou la sécurité : on dit qu’on s’en occupe, probablement que plein de gens aimeraient que ce soit vrai - ou même pensent que c’est vrai - mais en vrai on est déjà en retard pour livrer les fonctionnalités promises alors bien faire …
#1.3
Par contre de l'optimisation logicielle oui, par exemple éviter de trop empiler les couches de framework.